/**
 * @license
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

goog.declareModuleId('polygerrit.constants.constants');

/**
 * @enum
 * @desc Tab names for primary tabs on change view page.
 */
export const PrimaryTab = {
  FILES: 'files',
  /**
   * When renaming this, the links in UrlFormatter must be updated.
   */
  COMMENT_THREADS: 'comments',
  FINDINGS: 'findings',
};

/**
 * @enum
 * @desc Tab names for secondary tabs on change view page.
 */
export const SecondaryTab = {
  CHANGE_LOG: '_changeLog',
};

/**
 * @enum
 * @desc Tag names of change log messages.
 */
export const MessageTag = {
  TAG_DELETE_REVIEWER: 'autogenerated:gerrit:deleteReviewer',
  TAG_NEW_PATCHSET: 'autogenerated:gerrit:newPatchSet',
  TAG_NEW_WIP_PATCHSET: 'autogenerated:gerrit:newWipPatchSet',
  TAG_REVIEWER_UPDATE: 'autogenerated:gerrit:reviewerUpdate',
  TAG_SET_PRIVATE: 'autogenerated:gerrit:setPrivate',
  TAG_UNSET_PRIVATE: 'autogenerated:gerrit:unsetPrivate',
  TAG_SET_READY: 'autogenerated:gerrit:setReadyForReview',
  TAG_SET_WIP: 'autogenerated:gerrit:setWorkInProgress',
  TAG_SET_ASSIGNEE: 'autogenerated:gerrit:setAssignee',
  TAG_UNSET_ASSIGNEE: 'autogenerated:gerrit:deleteAssignee',
};

/**
 * @enum
 * @desc Modes for gr-diff-cursor
 * The scroll behavior for the cursor. Values are 'never' and
 * 'keep-visible'. 'keep-visible' will only scroll if the cursor is beyond
 * the viewport.
 */
export const ScrollMode = {
  KEEP_VISIBLE: 'keep-visible',
  NEVER: 'never',
};

/**
 * @enum
 * @desc Specifies status for a change
 */
export const ChangeStatus = {
  ABANDONED: 'ABANDONED',
  MERGED: 'MERGED',
  NEW: 'NEW',
};

/**
 * @enum
 * @desc Special file paths
 */
export const SpecialFilePath = {
  PATCHSET_LEVEL_COMMENTS: '/PATCHSET_LEVEL',
  COMMIT_MESSAGE: '/COMMIT_MSG',
  MERGE_LIST: '/MERGE_LIST',
};
